package com.fth.learn.chapter02;

import java.util.Scanner;

/**
 * 学习一个java里面的方法
 * YiMi
 *
 * @author YiMi
 * @version 1.0
 * @date 2023/4/15 14:14
 */

public class LearnMethod01{

    /**
     * 全局变量
     */

    int a = 9;

        //函数 定义函数（方法）
    /**
     * 通用方法
     * @访问修饰符  个人（一个.java）       二人世界(不写关键字)（本类本包）             三口之家(本类 本包 子类)     所有人
     *       私有 private                    default|friendly                       protected          public
     * @修饰符1 static 静态(静态只能访问静态)
     * @修饰符2  final  最终不可变（这个方法不能被重写）
     * @返回值类型  基本类型(int等) |void（有返回值，但返回值是空,return可以省略）
     * @名称  首字母小写
     *
     */
//    [访问修饰符] [修饰符1] [修饰符2] [返回值类型]
//            [名称](形参类型 形参名称,形参类型 形参名称..){
//        return 返回值类型
//             }
//        定义一个两个函数访问的静态的add的方法名，求两个正整数的和
    public static int add(int x,int y){
        return x+y;
    }
    //形参x

//一个方法可以调用其他方法 可以方法同名
//    方法名字相同，方法个数不同，参数不同，叫做方法重载
    //相当于这个方法调用了上面的方法两次
    public static int add1(int x,int y,int z){
        return add(add(x,y) ,z);
    }

        //递归：方法可以调用其他方法，那么一个方法可以调用自己吗可以
//              这个可以叫做递归

    /**
     * 方法里面调方法自己（终止条件）
     * @param n
     * @return
     */
    public static int addRecursize(int n){
        return (n==1 ? 1 : n+addRecursize(n-1));
    }
    public static int addRecursize1(int n){
        return (n==10 ? 10 : n+addRecursize1(n+1));
    }
    //5   5+addRecursize（5-1）
    //    5+4 + addRecursize（4-1）
    //    5+4+3+addRecursize（3-1）-----没有结果
    /**
     * 主函数 主方法
     *
     */
    public static void main(String[] args) {
        System.out.println(add1(2, 3 ,6));
        //实参2
        System.out.println(addRecursize(4));
        System.out.println(addRecursize1(1));



            //需求分析： 扑克52张  4种花色 10张牌 一共40张   定义： 十位 1红桃 2方块 3黑桃 4梅花
            for (int i = 10, len = 50; i < len; i++){
                //选择结构 择1性
                int bit = i % 10;
                int ten = i / 10;
                String card = "";
                if(ten == 1){
                    card = "红桃" + (bit+1);
                }else if(ten == 2){
                    card = "方块" + (bit+1);
                }else if(ten == 3){
                    card = "黑桃" + (bit+1);
                }else {
                    card = "梅花" + (bit+1);
                }
                System.out.printf("当前个数为%d,个数为%d,十数为%d,这是一张%s\n",i,bit,ten,card);
            }

            //输入函数
            // 表示可以让人与计算机控制台交互
        Scanner scan = new Scanner(System.in);
            //控制台扫描器
        System.out.println("请赌神抽牌");
        int first = scan.nextInt();
        //输入
                //引来的要么一定相同，要么是子类

        int bit = first % 10;
        int ten = first / 10;
        String card = "";
        if(ten == 1){
            card = "红桃" + (bit+1);
        }else if(ten == 2){
            card = "方块" + (bit+1);
        }else if(ten == 2){
            card = "方块" + (bit+1);
        }else if(ten == 3){
            card = "黑桃" + (bit+1);
        }else {
            card = "梅花" + (bit+1);
        }
        System.out.println(card);


        System.out.println("请赌神抽牌2222");
        int first1 = scan.nextInt();
        //输入
        //引来的要么一定相同，要么是子类

        int bit1 = first % 10;
        int ten1 = first / 10;
        String card1 = "";
        if(ten1 == 1){
            card1 = "红桃" + (bit1+1);
        }else if(ten1 == 2){
            card1 = "方块" + (bit1+1);
        }else if(ten1 == 2){
            card1 = "方块" + (bit1+1);
        }else if(ten1 == 3){
            card1 = "黑桃" + (bit1+1);
        }else {
            card1 = "梅花" + (bit1+1);
        }
        System.out.println(card1);

        System.out.println(bit > bit1 ? "赌神1胜利" : "赌神2胜" );










    }




}
